function draw_support_vectors(data, model, problem, config)
    switch problem
        case {'binary', 'multiclass'}
            if iscell(model.par.ker) == 1 && iscell(model.sup) == 1
                P = size(model.par.ker, 2);
                for m = 1:P
                    [supval, traind] = intersect(data.ind, model.sup{m}.ind); %#ok<ASGLU>
                    for l = unique(data.y)'
                        sup = traind(data.y(traind) == l);
                        plot(data.X(sup, 1), data.X(sup, 2), 'Color',      config.support_colors(l, :), ...
                                                             'Marker',     config.support_markers(l), ...
                                                             'MarkerSize', config.support_size, ...
                                                             'LineWidth',  config.support_width, ...
                                                             'LineStyle',  'none');
                    end
                end
            else
                [supval, traind] = intersect(data.ind, model.sup.ind); %#ok<ASGLU>
                for l = unique(data.y)'
                    sup = traind(data.y(traind) == l);
                    plot(data.X(sup, 1), data.X(sup, 2), 'Color',      config.support_colors(l, :), ...
                                                         'Marker',     config.support_markers(l), ...
                                                         'MarkerSize', config.support_size, ...
                                                         'LineWidth',  config.support_width, ...
                                                         'LineStyle',  'none');
                end
            end
        case 'regression'
            if iscell(model.par.ker) == 1 && iscell(model.sup) == 1
                P = size(model.par.ker, 2);
                for m = 1:P
                    [supval, traind] = intersect(data.ind, model.sup{m}.ind); %#ok<ASGLU>
                    plot(data.X(traind, 1), data.y(traind, 1), 'Color',      config.support_colors(1, :), ...
                                                               'Marker',     config.support_markers(1), ...
                                                               'MarkerSize', config.support_size, ...
                                                               'LineWidth',  config.support_width, ...
                                                               'LineStyle',  'none');
                end
            else
                [supval, traind] = intersect(data.ind, model.sup.ind); %#ok<ASGLU>
                plot(data.X(traind, 1), data.y(traind, 1), 'Color',      config.support_colors(1, :), ...
                                                           'Marker',     config.support_markers(1), ...
                                                           'MarkerSize', config.support_size, ...
                                                           'LineWidth',  config.support_width, ...
                                                           'LineStyle',  'none');
            end
        case 'clustering'
            if iscell(model.par.ker) == 1
                P = size(model.par.ker, 2);
                for m = 1:P
                    [supval, traind] = intersect(data.ind, model.sup{m}.ind); %#ok<ASGLU>
                    plot(data.X(traind, 1), data.X(traind, 2), 'Color',      config.support_colors(1, :), ...
                                                               'Marker',     config.support_markers(1), ...
                                                               'MarkerSize', config.support_size, ...
                                                               'LineWidth',  config.support_width, ...
                                                               'LineStyle',  'none');
                end
            else
                [supval, traind] = intersect(data.ind, model.sup.ind); %#ok<ASGLU>
                plot(data.X(traind, 1), data.X(traind, 2), 'Color',      config.support_colors(1, :), ...
                                                           'Marker',     config.support_markers(1), ...
                                                           'MarkerSize', config.support_size, ...
                                                           'LineWidth',  config.support_width, ...
                                                           'LineStyle',  'none');
            end
    end
end